
package jp.ize.iwp.utils.sync;

/**
* SyncUnit クラスです。<br />
* SyncManager によって管理されるため直接インスタンスを生成することはありません。
* done(), error() メソッドのみを利用します。
*/
class SyncUnit
{
	// {{{ properties

	/** unitのIDです。SyncManagerにより割り当てられます。 */
	public var id:Int;
	/** 管理主体であるSyncManager です。 */
	public var manager:SyncManager;

	// }}}
	// {{{ public function new( man:SyncManager, idnum:Int ) : Void
	/**
	* コンストラクタ
	*/
	public function new( man:SyncManager, idnum:Int ) : Void
	{
		manager = man;
		id = idnum;
	}

	// }}}
	// {{{ public function done() : Void
	/**
	* 同期対象となる処理が終了したときに呼出すようにします。
	* SyncManager に処理が終了したことを伝えます。
	*/
	public function done() : Void
	{
		manager.done(id);
	}

	// }}}
	// {{{ public function error( e:Dynamic ) : Void
	/**
	* 同期対象となる処理中にエラーが起こったときに呼出すようにします。
	* SyncManager に処理中にエラーがあったことを通知します。
	*/
	public function error( e:Dynamic ) : Void
	{
		manager.error(id,e);
	}

	// }}}
}
